{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\".\\\\baidu.png\" alt=\"some_text\">\n",
    "<h1> 第二讲 程序设计基础</h1>\n",
    "<a id=backup></a>\n",
    "<H2>目录</H2>  \n",
    "\n",
    "[2.1 程序执行过程](#Section1)  \n",
    "[2.2 程序实例](#Section2)  \n",
    "[2.3 程序的基本结构](#Section3)     \n",
    "[2.4 顺序结构](#Section4)  \n",
    "[2.5 分支结构](#Section5)  \n",
    "[2.6 循环结构](#Section6) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id = Section1> </a>\n",
    "## 2.1 程序执行过程\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x27ef3ba3af0>,\n",
       " <matplotlib.lines.Line2D at 0x27ef3ba3b50>]"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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BrNmzeInP/lJglY6NR544AHOPfdccnNzKS0t5dprr+XAgQOj3ufVV1/FZrOd8bV///4ErXry3H///Wesu7y8fNT7JOvfdubMmcP+nT7/+c8Pe3yy/V1ff/11rr76aiorK7HZbPz+978f9HtN07j//vuprKwkMzOTiy++mD179oz5uBs3bmTRokV4PB4WLVrE008/bdIrmBijvd5AIMBXv/pVli5dSnZ2NpWVldx0002cPn161MfcsGHDsH/zgYEBk1/N2Iz197355pvPWPeqVavGfNxk/PsCw/6dbDYb//Zv/zbiY8r8940XKsCZIE8++SR33XUXX//619mxYwdr167lyiuvpLa2dtjjjx07xgc/+EHWrl3Ljh07+Id/+AfuvPNONm7cmOCVT5zXXnuNz3/+82zdupVNmzYRDAZZt24dvb29Y973wIED1NfXG19z585NwIqnzuLFiwet+7333hvx2GT+27799tuDXuemTZsA+PjHPz7q/ZLl79rb28uyZcv40Y9+NOzvv/vd7/L973+fH/3oR7z99tuUl5dz2WWXGXPqhmPLli1cf/31rF+/nl27drF+/Xquu+463nzzTbNexrgZ7fX29fXxzjvv8I1vfIN33nmHp556ioMHD/LhD394zMfNy8sb9Peur68nIyPDjJcwIcb6+wJcccUVg9b93HPPjfqYyfr3Bc74Gz366KPYbDY++tGPjvq4sv5944ammBDnnXeedvvttw/62YIFC7Svfe1rwx5/7733agsWLBj0s8997nPaqlWrTFujWTQ1NWmA9tprr414zCuvvKIBWnt7e+IWFie++c1vasuWLRv38an0t/3Sl76kzZ49WwuHw8P+Ppn/roD29NNPG/8Oh8NaeXm59v/+3/8zfjYwMKB5vV7tJz/5yYiPc91112lXXHHFoJ9dfvnl2g033BD3NU+Foa93ON566y0N0E6cODHiMf/zP/+jeb3e+C7OBIZ7vZ/61Ke0a665ZkKPk0p/32uuuUb7wAc+MOoxyfL3nQoqgzMB/H4/27dvZ926dYN+vm7dOjZv3jzsfbZs2XLG8Zdffjnbtm0jEAiYtlYz6OzsBKCwsHDMY5cvX05FRQWXXHIJr7zyitlLixuHDh2isrKSmpoabrjhBo4ePTrisanyt/X7/Tz22GN85jOfGXP4bLL+XWM5duwYDQ0Ng/52Ho+H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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "x = np.linspace(0,6*np.pi)\n",
    "a=1\n",
    "plt.plot(x,np.sin(x),x,np.cos(x))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 程序设计语言：机器语言、汇编语言、高级语言\n",
    "## 编译和解释\n",
    "编译：fortran C C++ C#\n",
    "解释：basic JavaScript PHP \n",
    "Python？？？\n",
    "Python语言执行的几种方式：\n",
    "\n",
    "分析程序执行过程-IPO：  \n",
    "a. Input模块：  \n",
    "b. Process模块：  \n",
    "c. Output模块：  \n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id = Section2> </a>\n",
    "## 2.2 程序实例\n",
    "\n",
    "<p><a href=\"https://yanghailin.blog.csdn.net/article/details/81126087?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link\">\n",
    "this is example of python</a></p"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "有四个数字：1、2、3、4，能组成多少个互不相同且无重复数字的三位数？各是多少？\n",
    "\n",
    "要素"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24\n",
      "['123', '124', '132', '134', '142', '143', '213', '214', '231', '234', '241', '243', '312', '314', '321', '324', '341', '342', '412', '413', '421', '423', '431', '432']\n"
     ]
    }
   ],
   "source": [
    "L=[]\n",
    "a=[1,2,3,4]\n",
    " \n",
    "#for i in range(len(a)):\n",
    " \n",
    "for val_1 in a:   #   for(i=1;i<n;I++)\n",
    "    for val_2 in a:\n",
    "        for val_3 in a:\n",
    "            if(val_1 == val_2 or val_1 == val_3 or val_2 == val_3):\n",
    "                continue;\n",
    "            else:\n",
    "                L.append(str(val_1)+str(val_2)+str(val_3))\n",
    " \n",
    " \n",
    "print(len(L)) \n",
    "print (L)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 2 3 n= 1\n",
      "1 2 4 n= 2\n",
      "1 3 2 n= 3\n",
      "1 3 4 n= 4\n",
      "1 4 2 n= 5\n",
      "1 4 3 n= 6\n",
      "2 1 3 n= 7\n",
      "2 1 4 n= 8\n",
      "2 3 1 n= 9\n",
      "2 3 4 n= 10\n",
      "2 4 1 n= 11\n",
      "2 4 3 n= 12\n",
      "3 1 2 n= 13\n",
      "3 1 4 n= 14\n",
      "3 2 1 n= 15\n",
      "3 2 4 n= 16\n",
      "3 4 1 n= 17\n",
      "3 4 2 n= 18\n",
      "4 1 2 n= 19\n",
      "4 1 3 n= 20\n",
      "4 2 1 n= 21\n",
      "4 2 3 n= 22\n",
      "4 3 1 n= 23\n",
      "4 3 2 n= 24\n"
     ]
    }
   ],
   "source": [
    "n=0\n",
    "for i in range(1,5):\n",
    "    for j in range(1,5):\n",
    "        for k in range(1,5):\n",
    "            if( i != k ) and (i != j) and (j != k):\n",
    "                n=n+1\n",
    "                print (i,j,k,\"n=\",n)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "企业发放的奖金根据利润提成。\n",
    "利润(I)低于或等于10万元时，奖金可提10%；\n",
    "利润高于10万元，低于20万元时，低于10万元的部分\n",
    "按10%提成，高于10万元的部分，可提成7.5%；\n",
    "20万到40万之间时，高于20万元的部分，可提成5%；\n",
    "40万到60万之间时高于40万元的部分，可提成3%；\n",
    "60万到100万之间时，高于60万元的部分，可提成1.5%;\n",
    "高于100万元时,超过100万元的部分按1%提成。\n",
    "从键盘输入当月利润I，求应发放奖金总数？\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "profit= 102.95\n"
     ]
    }
   ],
   "source": [
    "\n",
    "#coding=utf-8\n",
    "profit = 0\n",
    "I = int(input(\"please input: \"))\n",
    "if(I<=10):\n",
    "    profit = 0.1 * I\n",
    "elif(I <= 20):\n",
    "    profit = 10 *0.1 + (I - 10)*0.075\n",
    "elif(I <=40):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (I - 20)*0.05\n",
    "elif(I <= 60):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (I - 40)*0.03\n",
    "elif(I <= 100):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (60 - 40)*0.03 + (I - 60)*0.015\n",
    "else : \n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (60 - 40)*0.03 + (100 - 60)*0.015 + (I -100)*0.01\n",
    "    \n",
    "print (\"profit=\",profit)\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100.0\n",
      "profit= 100.0\n"
     ]
    }
   ],
   "source": [
    "i = int(input('净利润:'))\n",
    "arr = [1000000,600000,400000,200000,100000,0]\n",
    "rat = [0.01,0.015,0.03,0.05,0.075,0.1]\n",
    "r = 0\n",
    "for idx in range(0,6):\n",
    "    if i>arr[idx]:\n",
    "        r+=(i-arr[idx])*rat[idx]#r=r+nnn\n",
    "        print((i-arr[idx])*rat[idx])\n",
    "        i=arr[idx]\n",
    "print (\"profit=\",r)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Python 数字类型转换\n",
    "有时候，我们需要对数据内置的类型进行转换，数据类型的转换，你只需要将数据类型作为函数名即可。\n",
    "\n",
    "int(x) 将x转换为一个整数。\n",
    "\n",
    "float(x) 将x转换到一个浮点数。\n",
    "\n",
    "complex(x) 将x转换到一个复数，实数部分为 x，虚数部分为 0。\n",
    "\n",
    "complex(x, y) 将 x 和 y 转换到一个复数，实数部分为 x，虚数部分为 y。x 和 y 是数字表达式。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=Section3></a>\n",
    "## 2.3程序的基本结构\n",
    "结构化程序的三大基本结构：\n",
    "\n",
    "a.顺序结构  \n",
    "b.分支结构  \n",
    "c.循环结构  \n",
    "\n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=Section4></a>\n",
    "## 2.4顺序结构\n",
    "\n",
    "### 数学函数\n",
    "<table><tr>\n",
    "<th>函数</th><th>返回值 ( 描述 )</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-abs.html\" rel=\"noopener noreferrer\">abs(x)</a></td><td>返回数字的绝对值，如abs(-10) 返回 10</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-ceil.html\" rel=\"noopener noreferrer\">ceil(x) </a></td><td>返回数字的上入整数，如math.ceil(4.1) 返回 5</td></tr>\n",
    "<tr><td><p>cmp(x, y)</p></td>\n",
    "<td>如果 x &lt; y 返回 -1, 如果 x == y 返回 0, 如果 x &gt; y 返回 1。 <strong style=\"color:red\">Python 3 已废弃，使用 (x&gt;y)-(x&lt;y) 替换</strong>。 </td>\n",
    "</tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-exp.html\" rel=\"noopener noreferrer\">exp(x) </a></td><td>返回e的x次幂(e<sup>x</sup>),如math.exp(1) 返回2.718281828459045</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-fabs.html\" rel=\"noopener noreferrer\">fabs(x)</a></td><td>返回数字的绝对值，如math.fabs(-10) 返回10.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-floor.html\" rel=\"noopener noreferrer\">floor(x) </a></td><td>返回数字的下舍整数，如math.floor(4.9)返回 4</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-log.html\" rel=\"noopener noreferrer\">log(x) </a></td><td>如math.log(math.e)返回1.0,math.log(100,10)返回2.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-log10.html\" rel=\"noopener noreferrer\">log10(x) </a></td><td>返回以10为基数的x的对数，如math.log10(100)返回 2.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-max.html\" rel=\"noopener noreferrer\">max(x1, x2,...) </a></td><td>返回给定参数的最大值，参数可以为序列。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-min.html\" rel=\"noopener noreferrer\">min(x1, x2,...) </a></td><td>返回给定参数的最小值，参数可以为序列。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-modf.html\" rel=\"noopener noreferrer\">modf(x) </a></td><td>返回x的整数部分与小数部分，两部分的数值符号与x相同，整数部分以浮点型表示。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-pow.html\" rel=\"noopener noreferrer\">pow(x, y)</a></td><td> x**y 运算后的值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-round.html\" rel=\"noopener noreferrer\">round(x [,n])</a></td><td><p>返回浮点数 x 的四舍五入值，如给出 n 值，则代表舍入到小数点后的位数。</p>\n",
    "<p><strong>其实准确的说是保留值将保留到离上一位更近的一端。</strong></p>\n",
    "</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-sqrt.html\" rel=\"noopener noreferrer\">sqrt(x) </a></td><td>返回数字x的平方根。</td></tr>\n",
    "</table>\n",
    "\n",
    "### 随机数函数\n",
    "随机数可以用于数学，游戏，安全等领域中，还经常被嵌入到算法中，用以提高算法效率，并提高程序的安全性。\n",
    "\n",
    "Python包含以下常用随机数函数：\n",
    "\n",
    "<table><tr>\n",
    "<th>函数</th><th>描述</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-choice.html\" rel=\"noopener noreferrer\">choice(seq)</a></td><td>从序列的元素中随机挑选一个元素，比如random.choice(range(10))，从0到9中随机挑选一个整数。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-randrange.html\" rel=\"noopener noreferrer\">randrange ([start,] stop [,step]) </a></td><td>从指定范围内，按指定基数递增的集合中获取一个随机数，基数默认值为 1</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-random.html\" rel=\"noopener noreferrer\">random() </a></td><td> 随机生成下一个实数，它在[0,1)范围内。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-seed.html\" rel=\"noopener noreferrer\">seed([x]) </a></td><td>改变随机数生成器的种子seed。如果你不了解其原理，你不必特别去设定seed，Python会帮你选择seed。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-shuffle.html\" rel=\"noopener noreferrer\">shuffle(lst) </a></td><td>将序列的所有元素随机排序</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-uniform.html\" rel=\"noopener noreferrer\">uniform(x, y)</a></td><td>随机生成下一个实数，它在[x,y]范围内。</td></tr>\n",
    "</table>\n",
    "\n",
    "### 三角函数\n",
    "Python包括以下三角函数：\n",
    "<table><tr>\n",
    "<th>函数</th><th>描述</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-acos.html\" rel=\"noopener noreferrer\">acos(x)</a></td><td>返回x的反余弦弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-asin.html\" rel=\"noopener noreferrer\">asin(x)</a></td><td>返回x的反正弦弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-atan.html\" rel=\"noopener noreferrer\">atan(x)</a></td><td>返回x的反正切弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-atan2.html\" rel=\"noopener noreferrer\">atan2(y, x)</a></td><td>返回给定的 X 及 Y 坐标值的反正切值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-cos.html\" rel=\"noopener noreferrer\">cos(x)</a></td><td>返回x的弧度的余弦值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-hypot.html\" rel=\"noopener noreferrer\">hypot(x, y)</a></td><td>返回欧几里德范数 sqrt(x*x + y*y)。 </td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-sin.html\" rel=\"noopener noreferrer\">sin(x)</a></td><td>返回的x弧度的正弦值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-tan.html\" rel=\"noopener noreferrer\">tan(x)</a></td><td>返回x弧度的正切值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-degrees.html\" rel=\"noopener noreferrer\">degrees(x)</a></td><td>将弧度转换为角度,如degrees(math.pi/2) ，  返回90.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-radians.html\" rel=\"noopener noreferrer\">radians(x)</a></td><td>将角度转换为弧度</td></tr>\n",
    "</table>\n",
    "\n",
    "### 数学常量\n",
    "\n",
    "<table><tr>\n",
    "<th>常量</th><th>描述</th></tr>\n",
    "<tr><td>pi</td><td>数学常量 pi（圆周率，一般以π来表示）</td></tr>\n",
    "<tr><td>e</td><td>数学常量 e，e即自然常数（自然常数）。</td></tr>\n",
    "</table>\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "绘制计算圆周长的流程图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 7.1.0 (20230121.1956)\n -->\n<!-- Title: 顺序结构 Pages: 1 -->\n<svg width=\"208pt\" height=\"476pt\"\n viewBox=\"0.00 0.00 208.12 476.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 472)\">\n<title>顺序结构</title>\n<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-472 204.12,-472 204.12,4 -4,4\"/>\n<!-- 1 -->\n<g id=\"node1\" class=\"node\">\n<title>1</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"127.06,-468 73.06,-468 73.06,-432 127.06,-432 127.06,-468\"/>\n<text text-anchor=\"middle\" x=\"100.06\" y=\"-446.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Start</text>\n</g>\n<!-- 2 -->\n<g id=\"node2\" class=\"node\">\n<title>2</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"200.18,-396 40.91,-396 -0.06,-360 159.21,-360 200.18,-396\"/>\n<text text-anchor=\"middle\" x=\"100.06\" y=\"-374.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">input Radius =?</text>\n</g>\n<!-- 1&#45;&gt;2 -->\n<g id=\"edge1\" class=\"edge\">\n<title>1&#45;&gt;2</title>\n<path fill=\"none\" stroke=\"black\" d=\"M100.06,-431.7C100.06,-424.41 100.06,-415.73 100.06,-407.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-407.62 100.06,-397.62 96.56,-407.62 103.56,-407.62\"/>\n</g>\n<!-- 3 -->\n<g id=\"node3\" class=\"node\">\n<title>3</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"143.06,-324 57.06,-324 57.06,-288 143.06,-288 143.06,-324\"/>\n<text text-anchor=\"middle\" x=\"100.06\" y=\"-302.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print Radius</text>\n</g>\n<!-- 2&#45;&gt;3 -->\n<g id=\"edge2\" class=\"edge\">\n<title>2&#45;&gt;3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M100.06,-359.7C100.06,-352.41 100.06,-343.73 100.06,-335.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-335.62 100.06,-325.62 96.56,-335.62 103.56,-335.62\"/>\n</g>\n<!-- 4 -->\n<g id=\"node4\" class=\"node\">\n<title>4</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"152.56,-252 47.56,-252 47.56,-216 152.56,-216 152.56,-252\"/>\n<text text-anchor=\"middle\" x=\"100.06\" y=\"-230.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Caculating Area</text>\n</g>\n<!-- 3&#45;&gt;4 -->\n<g id=\"edge3\" class=\"edge\">\n<title>3&#45;&gt;4</title>\n<path fill=\"none\" stroke=\"black\" d=\"M100.06,-287.7C100.06,-280.41 100.06,-271.73 100.06,-263.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-263.62 100.06,-253.62 96.56,-263.62 103.56,-263.62\"/>\n</g>\n<!-- 5 -->\n<g id=\"node5\" class=\"node\">\n<title>5</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"165.56,-180 34.56,-180 34.56,-144 165.56,-144 165.56,-180\"/>\n<text text-anchor=\"middle\" x=\"100.06\" y=\"-158.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Caculating perimeter</text>\n</g>\n<!-- 4&#45;&gt;5 -->\n<g id=\"edge4\" class=\"edge\">\n<title>4&#45;&gt;5</title>\n<path fill=\"none\" stroke=\"black\" d=\"M100.06,-215.7C100.06,-208.41 100.06,-199.73 100.06,-191.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-191.62 100.06,-181.62 96.56,-191.62 103.56,-191.62\"/>\n</g>\n<!-- 6 -->\n<g id=\"node6\" class=\"node\">\n<title>6</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"127.06,-108 73.06,-108 73.06,-72 127.06,-72 127.06,-108\"/>\n<text text-anchor=\"middle\" x=\"100.06\" y=\"-86.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">print</text>\n</g>\n<!-- 5&#45;&gt;6 -->\n<g id=\"edge5\" class=\"edge\">\n<title>5&#45;&gt;6</title>\n<path fill=\"none\" stroke=\"black\" d=\"M100.06,-143.7C100.06,-136.41 100.06,-127.73 100.06,-119.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-119.62 100.06,-109.62 96.56,-119.62 103.56,-119.62\"/>\n</g>\n<!-- 7 -->\n<g id=\"node7\" class=\"node\">\n<title>7</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"127.06,-36 73.06,-36 73.06,0 127.06,0 127.06,-36\"/>\n<text text-anchor=\"middle\" x=\"100.06\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">end</text>\n</g>\n<!-- 6&#45;&gt;7 -->\n<g id=\"edge6\" class=\"edge\">\n<title>6&#45;&gt;7</title>\n<path fill=\"none\" stroke=\"black\" d=\"M100.06,-71.7C100.06,-64.41 100.06,-55.73 100.06,-47.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-47.62 100.06,-37.62 96.56,-47.62 103.56,-47.62\"/>\n</g>\n</g>\n</svg>\n",
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x1f6db6c1490>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz\n",
    "dot=graphviz.Digraph(comment='the round table',name=\"顺序结构\",node_attr={'shape': 'box'})\n",
    "dot.node('1','Start')\n",
    "dot.node('2','input Radius =?',shape='parallelogram')\n",
    "dot.node('3','Print Radius')\n",
    "dot.node('4','Caculating Area')\n",
    "dot.node('5','Caculating perimeter')\n",
    "dot.node('6','print')\n",
    "dot.node('7','end')\n",
    "dot.edges(['12','23','34','45','56','67'])\n",
    "dot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Ridus= 10000\n",
      "面积和周长: 314150000.0 62830.0\n"
     ]
    }
   ],
   "source": [
    "Radius = eval(input(\"请输入圆半径:\"))\n",
    "print(\"Ridus=\",Radius)\n",
    "Area = 3.1415*Radius*Radius\n",
    "perimeter  = 2*3.1415*Radius \n",
    "print(\"面积和周长:\",Area,perimeter)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=section4></a>\n",
    "## 2.5分支结构\n",
    "### 2.5.1 Python比较运算符\n",
    "\n",
    "以下假设变量a为10，变量b为20：\n",
    "<table><tr>\n",
    "<th width=\"10%\">运算符</th><th>描述</th><th>实例</th>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>==</td><td> 等于 - 比较对象是否相等</td><td> (a == b) 返回 False。 </td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>!=</td><td> 不等于 - 比较两个对象是否不相等</td><td> (a != b) 返回 True。 </td>\n",
    "</tr>\n",
    "\n",
    "<tr>\n",
    "<td>&gt;</td><td> 大于 - 返回x是否大于y</td><td> (a &gt; b) 返回 False。</td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&lt;</td><td> 小于 - 返回x是否小于y。所有比较运算符返回1表示真，返回0表示假。这分别与特殊的变量True和False等价。注意，这些变量名的大写。</td><td> (a &lt; b) 返回 True。 </td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&gt;=</td><td> 大于等于 - 返回x是否大于等于y。</td><td> (a &gt;= b) 返回 False。</td>\n",
    "\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&lt;=</td><td> 小于等于 - 返回x是否小于等于y。</td><td> (a &lt;= b) 返回 True。 </td>\n",
    "</tr>\n",
    "</table>\n",
    "\n",
    "### 2.5.2 Python逻辑运算符        \n",
    "Python语言支持逻辑运算符，以下假设变量 a 为 10, b为 20:\n",
    "<table><tr>\n",
    "<th>运算符</th><th>逻辑表达式</th><th>描述</th><th>实例</th>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>and</td><td>x and y</td><td> 布尔\"与\" - 如果 x 为 False，x and y 返回 x 的值，否则返回 y 的计算值。  </td><td> (a and b) 返回 20。</td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>or</td><td>x or y</td><td>布尔\"或\" - 如果 x 是 True，它返回 x 的值，否则它返回 y 的计算值。</td><td> (a or b) 返回 10。</td>\n",
    "</tr>\n",
    "<tr><td>not</td><td>not x</td><td>布尔\"非\" - 如果 x 为 True，返回 False 。如果 x 为 False，它返回 True。</td><td> not(a and b) 返回 False </td>\n",
    "</tr>\n",
    "</table>\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.5.3 条件控制语句\n",
    "Python 条件语句是通过一条或多条语句的执行结果（True 或者 False）来决定执行的代码块。\n",
    "\n",
    "可以通过下图来简单了解条件语句的执行过程:\n",
    "\n",
    "<img src=\".//img//if-condition.jpg\" width=\"250\"></img>\n",
    "\n",
    "<img src=\".//img//python-if.webp\" width=\"150\"></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 求绝对值。\n",
    "\n",
    "输入：x\n",
    "$$\n",
    "\\begin{align}\n",
    "&&\\left|y\\right |= \\left\\{\\begin{matrix}\n",
    "x & if \\: x\\geq 0\\\\-x& if \\:x< 0\n",
    "\\end{matrix}\\right.{\\color{Red} }\n",
    "\\end{align}\n",
    "$$\n",
    "输出：y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 7.1.0 (20230121.1956)\n -->\n<!-- Title: 分支结构 Pages: 1 -->\n<svg width=\"401pt\" height=\"404pt\"\n viewBox=\"0.00 0.00 401.40 404.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 400)\">\n<title>分支结构</title>\n<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-400 397.4,-400 397.4,4 -4,4\"/>\n<!-- 1 -->\n<g id=\"node1\" class=\"node\">\n<title>1</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"223.7,-396 169.7,-396 169.7,-360 223.7,-360 223.7,-396\"/>\n<text text-anchor=\"middle\" x=\"196.7\" y=\"-374.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">开始</text>\n</g>\n<!-- 2 -->\n<g id=\"node2\" class=\"node\">\n<title>2</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"332.74,-324 116.33,-324 60.66,-288 277.07,-288 332.74,-324\"/>\n<text text-anchor=\"middle\" x=\"196.7\" y=\"-302.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">输入Real Number =?</text>\n</g>\n<!-- 1&#45;&gt;2 -->\n<g id=\"edge1\" class=\"edge\">\n<title>1&#45;&gt;2</title>\n<path fill=\"none\" stroke=\"black\" d=\"M196.7,-359.7C196.7,-352.41 196.7,-343.73 196.7,-335.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"200.2,-335.62 196.7,-325.62 193.2,-335.62 200.2,-335.62\"/>\n</g>\n<!-- 3 -->\n<g id=\"node3\" class=\"node\">\n<title>3</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"196.7,-252 -0.2,-234 196.7,-216 393.6,-234 196.7,-252\"/>\n<text text-anchor=\"middle\" x=\"196.7\" y=\"-230.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">判断RealNumber是否大于0？</text>\n</g>\n<!-- 2&#45;&gt;3 -->\n<g id=\"edge2\" class=\"edge\">\n<title>2&#45;&gt;3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M196.7,-287.7C196.7,-280.41 196.7,-271.73 196.7,-263.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"200.2,-263.62 196.7,-253.62 193.2,-263.62 200.2,-263.62\"/>\n</g>\n<!-- 4 -->\n<g id=\"node4\" class=\"node\">\n<title>4</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"186.7,-180 22.7,-180 22.7,-144 186.7,-144 186.7,-180\"/>\n<text text-anchor=\"middle\" x=\"104.7\" y=\"-158.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">RealNumber=RealNumber</text>\n</g>\n<!-- 3&#45;&gt;4 -->\n<g id=\"edge3\" class=\"edge\">\n<title>3&#45;&gt;4</title>\n<path fill=\"none\" stroke=\"black\" d=\"M176.28,-217.46C164.58,-208.56 149.65,-197.2 136.45,-187.16\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"138.93,-184.65 128.85,-181.38 134.69,-190.22 138.93,-184.65\"/>\n</g>\n<!-- 5 -->\n<g id=\"node5\" class=\"node\">\n<title>5</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"374.2,-180 205.2,-180 205.2,-144 374.2,-144 374.2,-180\"/>\n<text text-anchor=\"middle\" x=\"289.7\" y=\"-158.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">RealNumber=&#45;RealNumber</text>\n</g>\n<!-- 3&#45;&gt;5 -->\n<g id=\"edge4\" class=\"edge\">\n<title>3&#45;&gt;5</title>\n<path fill=\"none\" stroke=\"black\" d=\"M217.34,-217.46C229.17,-208.56 244.26,-197.2 257.61,-187.16\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"259.41,-190.18 265.29,-181.37 255.2,-184.59 259.41,-190.18\"/>\n</g>\n<!-- 6 -->\n<g id=\"node6\" class=\"node\">\n<title>6</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"295.01,-108 138.62,-108 98.39,-72 254.78,-72 295.01,-108\"/>\n<text text-anchor=\"middle\" x=\"196.7\" y=\"-86.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">输出绝对值</text>\n</g>\n<!-- 4&#45;&gt;6 -->\n<g id=\"edge5\" class=\"edge\">\n<title>4&#45;&gt;6</title>\n<path fill=\"none\" stroke=\"black\" d=\"M127.44,-143.7C138.72,-135.11 152.53,-124.61 164.84,-115.24\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"166.86,-118.1 172.7,-109.26 162.62,-112.53 166.86,-118.1\"/>\n</g>\n<!-- 5&#45;&gt;6 -->\n<g id=\"edge6\" class=\"edge\">\n<title>5&#45;&gt;6</title>\n<path fill=\"none\" stroke=\"black\" d=\"M266.71,-143.7C255.31,-135.11 241.35,-124.61 228.9,-115.24\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"231.05,-112.47 220.96,-109.26 226.84,-118.07 231.05,-112.47\"/>\n</g>\n<!-- 7 -->\n<g id=\"node7\" class=\"node\">\n<title>7</title>\n<polygon fill=\"none\" stroke=\"black\" points=\"223.7,-36 169.7,-36 169.7,0 223.7,0 223.7,-36\"/>\n<text text-anchor=\"middle\" x=\"196.7\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">结束</text>\n</g>\n<!-- 6&#45;&gt;7 -->\n<g id=\"edge7\" class=\"edge\">\n<title>6&#45;&gt;7</title>\n<path fill=\"none\" stroke=\"black\" d=\"M196.7,-71.7C196.7,-64.41 196.7,-55.73 196.7,-47.54\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"200.2,-47.62 196.7,-37.62 193.2,-47.62 200.2,-47.62\"/>\n</g>\n</g>\n</svg>\n",
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x1f6dbaa7490>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz\n",
    "dot=graphviz.Digraph(comment='the round table',name=\"分支结构\",node_attr={'shape': 'box'})\n",
    "dot.node('1','开始')\n",
    "dot.node('2','输入Real Number =?',shape='parallelogram')\n",
    "dot.node('3','判断RealNumber是否大于0？',shape='diamond')\n",
    "dot.node('4','RealNumber=RealNumber')\n",
    "dot.node('5','RealNumber=-RealNumber')\n",
    "dot.node('6','输出绝对值',shape='parallelogram')\n",
    "dot.node('7','结束')\n",
    "dot.edges(['12','23','34','35','46','56','67'])\n",
    "dot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "求绝对值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "绝对值: 100\n"
     ]
    }
   ],
   "source": [
    "\n",
    "RealNumber = eval(input(\"输入实数:\"))\n",
    "\n",
    "if (RealNumber < 0):\n",
    "    RealNumber = -RealNumber\n",
    "print(\"绝对值:\",RealNumber)\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=section6></a>\n",
    "## 2.6循环结构\n",
    "\n",
    "循环结构：\n",
    "\n",
    "---while语句\n",
    "\n",
    "---for语句\n",
    "\n",
    "循环分类：  \n",
    "--- 当型循环  \n",
    "--- 直到型循环  \n",
    "\n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n"
     ]
    }
   ],
   "source": [
    "char1 =\"a\"\n",
    "char2=\"b\"\n",
    "char3=\"c\"\n",
    "char=char1+char2+char3\n",
    "boor1=(char[2]==char3)\n",
    "print(boor1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 整数累加：  \n",
    "输入：正整数R    \n",
    "处理：  \n",
    "S=1+2+3+…+R  \n",
    "<img src=\"./img/int_add.png\" width=\"150\">  \n",
    "输出：输出S"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "累加求和 5050\n"
     ]
    }
   ],
   "source": [
    "R = eval(input(\"请输入正整数:\"))\n",
    "i, S = 0, 0\n",
    "while (i<=R):\n",
    "    S = S + i\n",
    "    i = i + 1\n",
    "print(\"累加求和\",S)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Python 提供了 for 循环和 while 循环（在 Python 中没有 do..while 循环）:\n",
    "\n",
    "<table><tr><th style=\"width:30%\">循环类型</th><th>描述</th></tr>\n",
    "<tr><td><a href=\"/python/python-while-loop.html\" title=\"Python WHILE 循环\">while 循环</a></td><td>在给定的判断条件为 true 时执行循环体，否则退出循环体。</td></tr>\n",
    "<tr><td><a href=\"/python/python-for-loop.html\" title=\" Python FOR 循环\">for 循环</a></td><td>重复执行语句</td></tr>\n",
    "<tr><td><a href=\"/python/python-nested-loops.html\" title=\"Python 循环全套\">嵌套循环</a></td><td>你可以在while循环体中嵌套for循环</td></tr>\n",
    "</table>\n",
    "\n",
    "### 循环控制语句\n",
    "循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句：\n",
    "<table><tr><th style=\"width:30%\">控制语句</th><th>描述</th></tr>\n",
    "<tr><td><a href=\"/python/python-break-statement.html\" title=\"Python break 语句\">break 语句</a></td><td>在语句块执行过程中终止循环，并且跳出整个循环</td></tr>\n",
    "<tr><td><a href=\"/python/python-continue-statement.html\" title=\"Python  语句\">continue 语句</a></td><td>在语句块执行过程中终止当前循环，跳出该次循环，执行下一次循环。</td></tr>\n",
    "<tr><td><a href=\"/python/python-pass-statement.html\" title=\"Python pass 语句\">pass 语句</a></td><td>pass是空语句，是为了保持程序结构的完整性。</td></tr>\n",
    "</table>"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 绘制数字图画\n",
    "   <img src=\".//img//jqm1.jpg\" width=\"150 \" alt=\"机器猫\">\n",
    "   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                            .  ..                                                             \n",
      "                                          .   .     .  .''`\"^'   .                                            \n",
      "                               .' '   '`':`^,:!<+<><ll>[rntctfuj{i,I<\".  '  .                                 \n",
      "                              ..^'' ',::\"\",,~}]1]?l,```\"`^,l;;,,I!iIiil:<{'\".\"\"                               \n",
      "                  .     ...  ?_+;Il;Ii;!!I+,;:<:,:\"-_I\":;;;:;;;;,:^^\"\":,l~<:\"\":. `.                           \n",
      "                     . .\"-i>I~;;{~\"{)))[}]-+]1++}{){{11{111|({}}{}~!l-l:,\"`^:I>>II, `.  .                     \n",
      "                     ,I:+?~`!lllII!;}[>?]-~(\\\\((\\//\\\\//t\\1}}]{(){1{(11{]]-[}\\l^\",:~>i:. .`.                   \n",
      "                   ,,]_I:,!ii!><]+(,<({(||(tjfjjjjjtncvuvccuxf//\\/1)]1{((}{-[[)|)[^^!!!I\".^'.                 \n",
      "                 \"~l>;'`>ii!?]?]11)}\\(/ffjrjxjt\\tjnjjxnffxrrruvvvcvcXCutr}[()?]]}1)(1l;!i:I. \"                \n",
      "             .`mtI<,\",Ii<?_[\\1(|///f\\txfxunnxxxxxxxnxxununnnnnnnnufttfxxr}~[[?_)v{?-?{\\/;,I;I.,'              \n",
      "            `*\\l<;;\"^l[}{]t\\{ujx/jjjf/frtfffftrfrrrrrrxnnnnnnnnnnurrxrjjtxcvcXc]}?1[\\t}\\1|+,I!+^l`.           \n",
      "          .zxI]<::I}[}]{j}zvxxrrxrxnnrfrftjtrrxnrrrrrrrxuxunnnnurfxrx1zcnQtf/xcczvu1]]\\)\\][1\\:I!}`'  .        \n",
      "        .;[,-?l^^][-[(f+fzjrnjrruxuxnjfffrrrxrurrrrrxrrrrxnnxnrtur}~  ...   (ZYrrcvcz{}{(Y{t({|>l1`.'         \n",
      "     . .{|!>l\":~)?[/jffvxrxxjrnYrnxttfrrrrnrnnuvvrrrrnjrnxxnjjjc, ..       .   'orjuvccv?[LXc()(/>:~\".` .     \n",
      "      `>)I-i,I1<?(\\rjrxxjxxxvvxjffttrfrrrrxujjnvvuuncununrnnvz\\..               ^ifuYvxzLCntwuC}]}+\"[\". ..    \n",
      "     .-,]?\"+-!<|trrxuucxunXUXjxczvuunYrrjjjjfjLJ~II(InYXczzxuX' .'  .           ^^}kOkLOLcJCJUd0z{jz\"{'.      \n",
      ".   .~+,:^_{i?fjxrrxznxuuncXUJXuvnvvznjrftxvll..  .   `;XzCzYI w +;\"            ^\"\"ipmwwYcUOOZJXOY]vc:^..     \n",
      "   '(U!,[l(+]jxrvtnuunuvuUUYzXJYUurjftj/z<` ..       ..  .(Jr^ u8^O1            `,^;ZkopakqqmmqqLqz\\zC:\\.'    \n",
      "    #:[~i-?)vxrucnvvuuUUXYzXvvJJUnfuYLmc)..` >:;  .        .vY  &88c             \"'^YZqdqwdkhoohwQZ{Qt{;i'    \n",
      "   \\wmi[-{1cxxxzuuvvUUUUYXzuvcUYJUXCLJbl' ..Wd `U `       .``+{' .'.        .    \"\"]li<i;;~<i!&ZJhLXmQ(;<.    \n",
      "   z~_<<{1nJunnnxrzYJYUUYXUYXYLLCOZZO0q<   .,WBUbv         '^,nl ``..          ',\"ow^\"`\"````\"I:+umpC0qY-!Q    \n",
      ". 'n,>_{1(XcznnnnnnUXzUJUCQJzUQLC0ZCQQLi       p{'          ``(1;\"^....  ..   .''?},\"^` .  ]-^..`i>MZwkJ>?    \n",
      " `]z~_t))tczrxnnnncXXYCCQLQQOQLCzmZmZOqx> `.        .      '^.M.\"QW][l)'\"i'   `. .`\"'   >:.      ..!-bw#jt .  \n",
      " .[w><(1f(YuxnunrxUCJLQQQLQCQZZOQZ0mmQQQp`\"^              '`  *j'<. .`-U%aLI'       'c.           .,'~Zww)'   \n",
      ". ~q`i[|tuYuxnnnncLLQQ0QCLLOOCmbkdC#c~-><z'`..  .      .`^`^(*\"/bk;\"`;rxM.^                 .       ''!jX}.   \n",
      "   ?:>]t/xJzcuuuvCQQCLUL00OLbhOkM![+<;!;,\"^\";'^\"\"`'``''''^!#%0@BoWhMfL{jhC`           . .'\"tI\"     . '\"lvd..  \n",
      "  .j`!}(ujXYXvnvvQ0LCYQJ0qdMm@-<!+Il:,\"`'  .,I' '<:`;iY_-`^n}v@BBB&BB%%/M:            'Li.:\"^  \"I,..^`;`ft    \n",
      "   l,!-mvjcJUcuvL0JCLOOwZqbo11I<l;\"`^,\"\";\"\"^^\"^^^^^`.  .`;;:,.C%8W%BB%h- .            . .Il:^;b,\"' ' ^l'r_    \n",
      "  .lv{~cQJzULXvJQ0QLOO0mpMj]?i\",' }w*v1>l,,,;;;II^^^^``,,,:;;,:\",,[xl$,                . L++<+1k@8m{{Cl+[^.   \n",
      "..;1f|i1LXvYQCCLQQ00QQQMW>-l,Bf,^.`\"^^^^^^^^^^^^^^^:`'`^\"\"\"\",''``'..`;M               ..``.'''\",U]    \"l-.    \n",
      "  .;];+_zLYUUXCL00OmpOdMi~wI!I^^^^^^\"`^^^^^^^\"^^^^`.'``\"^\"\"`'.''..''.'\"W.               .'''``,,c  . ^`(I\"    \n",
      "   '.&><tOQYUzXOLQ0wZOQ,-{i!,^^\"^^^.. .  .''. . '''`'``^^^`'..........`_r .           . ..''`^:]U    `I]^     \n",
      "     :v!~rqXzcX0ZZCOmq![-!:;^`.  ..^.' ){-^^^^^^^^^\"\"^^`^^^'......... '':\".            ...'\"^:+,    l^fi      \n",
      "     .\"z\\iJmCYXU0mQ0aO,_>lI\"   ^ Uf+;\"^^\"^\"\"^\"^^^`:^\"^\"`'.'''`'.......'.^:.          .''`'.,t~`    `.]l       \n",
      "       _C-[XpmQZ0qpZ*L/_[l;:`:nc^^^^^^^^`'.`^^` (wp^^\"^^^``````.`'.....'^:`.      .'.`^`,'+j       \"l+`       \n",
      "       ^^r{rOhqawmOQMa0_->^:'C^^\"^^'``''``\"f>.``'``'^`^\"\"\"\"^```^\"......'.^x     . `^\",:[C.       ..,!'        \n",
      "         '[?zOOkhqqwpWd??i;\";I.<:`'``'.,&.^^'^````'.'''^\"^^^\"^\"\"^'......'^p\"^  .^^:`<CX          .,`.         \n",
      "         . p\\;ZZokpmLqW8+<<:l;^|~;!`\\*<^`...''``^^^^^^^\"\"\"\"^```\"\"`^'..'`^\",1....']#|            ``:           \n",
      "             b$XXZMMZZpMo]~<:,\"::oBM.:`^.   ..''`^^^^\"\"^^^\"```''\"^````''.<,p.fXX:             ''I  .^         \n",
      "              'QUOqh#Mkp&b>!!!i:lz'^k8U`\"^^ '  .'.'^^``^`^^^^^^\"^`^^`.'l(kZ1                ..;rit\\bC( . `    \n",
      "                +nabmW#*ba*li!!IU',,^`\",^'`<{\\t\"^^\"^::;:\"`.   .`.u&Q~,'                     '^:,,:^^!\\IjY .   \n",
      "               .  j-ddM&&#ow/!!!!`'^:;;;:::,,,\"\":I:\"'       .......                   . .  ':!--]_Xhad.:\"'f'  \n",
      "                    <LCpM8&dM#;!<;I;I;I;;,\",,:;;;^^`..        ....  ..            .  `. !i+-+~+-JphqC~lr>`;   \n",
      "                    .. 8{WM8MW*kl>;l;II;;;;;I;;I;''^^...'`''```\":\"^. . .   ..' .. \",`,!kak+}nnXQ$>MW#$XCn>^'''\n",
      "                  . '^^,\"`Q0$%8&%XM}I:!\";:;;;;:;;;\",;,\"\"\"\"``'.  . .'``'.'^^\";`. )-i#L(WOohdmXwh#ab$$$$Bu//i\" .\n",
      "                    ^^\",^^o%8@W%8*%&WW#l;,I;:;,::;;:;,\"\"\",,,,,^\"\"\"`'`''```..}[-0cJOLm)1\\Qb###wOZZZ#$$$B#*zr  `\n",
      "                     `^^^[f#%W88@@$BBB@*doW0'`If;;I!li!l!;II:;;;i!l!th!_cm/cd&#MLwt++,,;:Up0ahahMMW*MMW@puc\"> \n",
      "                      .'^.LMZoqpwZXU*bwdhka*#oap0wa#M#b(/Lqwzv0[Q0ZCJo%#hdbkavzXj?:;;;,,;:imphha**a*Mbmoo~i;  \n",
      "                      .`.co#aqpbkahmm0mO\"w]~!l?0z(Jop/xOM#hdbb*%WkZqqwqqwOLcuQ|:<<;l\"\"\",,,,'!ZpMCLwc~();^     \n",
      "                       .\\bobhhaohmmwZCUC);Il:\"--~nu0o#b*#*ook0vzrxuxuncXf)jI>:;Ii><lI\":,,\",'  `fn~`~ \".       \n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "show_heigth = 50\n",
    "show_width = 110\n",
    "#这两个数字是调出来的\n",
    "\n",
    "ascii_char = list(\n",
    "    \"$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\\\"^`'. \")\n",
    "#生成一个ascii字符列表\n",
    "char_len = len(ascii_char)\n",
    "\n",
    "pic = plt.imread(\"C:\\\\Users\\\\lenoo\\\\Desktop\\\\abc.jpg\")\n",
    "#使用plt.imread方法来读取图像，对于彩图，返回size = heigth*width*3的图像\n",
    "#matplotlib 中色彩排列是R G B\n",
    "#opencv的cv2中色彩排列是B G R\n",
    "\n",
    "pic_heigth, pic_width, _ = pic.shape\n",
    "#获取图像的高、宽\n",
    "\n",
    "gray = 0.2126 * pic[:, :, 0] + 0.7152 * pic[:, :, 1] + 0.0722 * pic[:, :, 2]\n",
    "#RGB转灰度图的公式 gray = 0.2126 * r + 0.7152 * g + 0.0722 * b\n",
    "\n",
    "#思路就是根据灰度值，映射到相应的ascii_char\n",
    "for i in range(show_heigth):\n",
    "    #根据比例映射到对应的像素\n",
    "    y = int(i * pic_heigth / show_heigth)\n",
    "    text = \"\"\n",
    "    for j in range(show_width):\n",
    "        x = int(j * pic_width / show_width)\n",
    "        text += ascii_char[int(gray[y][x] / 256 * char_len)]\n",
    "    print(text)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ! pip install -i http源\n",
    "新版ubuntu要求使用https源，要注意。\n",
    "\n",
    "清华：https://pypi.tuna.tsinghua.edu.cn/simple\n",
    "\n",
    "阿里云：https://mirrors.aliyun.com/pypi/simple/\n",
    "\n",
    "中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/\n",
    "\n",
    "华中理工大学：https://pypi.hustunique.com/\n",
    "\n",
    "山东理工大学：https://pypi.sdutlinux.org/ \n",
    "\n",
    "豆瓣：https://pypi.douban.com/simple/\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "排序后的数组:\n",
      "3764\n",
      "36394\n",
      "47464\n",
      "68759\n",
      "292049\n",
      "445746\n",
      "579669\n",
      "4547494\n",
      "7647648\n",
      "54648449\n"
     ]
    }
   ],
   "source": [
    "def bubbleSort(arr):\n",
    "    n = len(arr)\n",
    "    for i in range(n):\n",
    "\n",
    "        for j in range(0, n-i-1):\n",
    " \n",
    "            if arr[j] > arr[j+1] :\n",
    "                arr[j], arr[j+1] = arr[j+1], arr[j]\n",
    " \n",
    "arr = [445746,7647648,3764,36394,47464,54648449,4547494,292049,68759,579669]\n",
    " \n",
    "bubbleSort(arr)\n",
    " \n",
    "print (\"排序后的数组:\")\n",
    "for i in range(len(arr)):\n",
    "    print (\"%d\" %arr[i]),"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "..#...#...\n",
      "..#..#....\n",
      "..##...... \n",
      "..#..#....\n",
      "..#...#...\n",
      "\n",
      "\n",
      "..######..\n",
      "..#.......\n",
      "..#####... \n",
      "..#.......\n",
      "..######..\n",
      "\n",
      "\n",
      "..######..\n",
      "..#....#..\n",
      "..#.##... \n",
      "..#...#...\n",
      "..#....#..\n",
      "\n",
      "\n",
      "..#.......\n",
      "..#.......\n",
      "..#....... \n",
      "..#.......\n",
      "..######..\n",
      "\n",
      "\n",
      "..######..\n",
      "....##....\n",
      "....##.... \n",
      "....##....\n",
      "..######..\n",
      "\n",
      "\n",
      "..#....#..\n",
      "..##...#..\n",
      "..#.#..#.. \n",
      "..#..#.#..\n",
      "..#...##..\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "name = \"KERLIN\"\n",
    "  \n",
    "# 接收用户输入\n",
    "# name = input(\"输入你的名字: \\n\\n\") \n",
    "  \n",
    "lngth = len(name) \n",
    "l = \"\" \n",
    "  \n",
    "for x in range(0, lngth): \n",
    "    c = name[x] \n",
    "    c = c.upper() \n",
    "      \n",
    "    if (c == \"A\"): \n",
    "        print(\"..######..\\n..#....#..\\n..######..\", end = \" \") \n",
    "        print(\"\\n..#....#..\\n..#....#..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"B\"): \n",
    "        print(\"..######..\\n..#....#..\\n..#####...\", end = \" \") \n",
    "        print(\"\\n..#....#..\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"C\"): \n",
    "        print(\"..######..\\n..#.......\\n..#.......\", end = \" \") \n",
    "        print(\"\\n..#.......\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"D\"): \n",
    "        print(\"..#####...\\n..#....#..\\n..#....#..\", end = \" \") \n",
    "        print(\"\\n..#....#..\\n..#####...\\n\\n\") \n",
    "          \n",
    "    elif (c == \"E\"): \n",
    "        print(\"..######..\\n..#.......\\n..#####...\", end = \" \") \n",
    "        print(\"\\n..#.......\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"F\"): \n",
    "        print(\"..######..\\n..#.......\\n..#####...\", end = \" \") \n",
    "        print(\"\\n..#.......\\n..#.......\\n\\n\") \n",
    "          \n",
    "    elif (c == \"G\"): \n",
    "        print(\"..######..\\n..#.......\\n..#.####..\", end = \" \") \n",
    "        print(\"\\n..#....#..\\n..#####...\\n\\n\") \n",
    "          \n",
    "    elif (c == \"H\"): \n",
    "        print(\"..#....#..\\n..#....#..\\n..######..\", end = \" \") \n",
    "        print(\"\\n..#....#..\\n..#....#..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"I\"): \n",
    "        print(\"..######..\\n....##....\\n....##....\", end = \" \") \n",
    "        print(\"\\n....##....\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"J\"): \n",
    "        print(\"..######..\\n....##....\\n....##....\", end = \" \") \n",
    "        print(\"\\n..#.##....\\n..####....\\n\\n\") \n",
    "          \n",
    "    elif (c == \"K\"): \n",
    "        print(\"..#...#...\\n..#..#....\\n..##......\", end = \" \") \n",
    "        print(\"\\n..#..#....\\n..#...#...\\n\\n\") \n",
    "          \n",
    "    elif (c == \"L\"): \n",
    "        print(\"..#.......\\n..#.......\\n..#.......\", end = \" \") \n",
    "        print(\"\\n..#.......\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"M\"): \n",
    "        print(\"..#....#..\\n..##..##..\\n..#.##.#..\", end = \" \") \n",
    "        print(\"\\n..#....#..\\n..#....#..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"N\"): \n",
    "        print(\"..#....#..\\n..##...#..\\n..#.#..#..\", end = \" \") \n",
    "        print(\"\\n..#..#.#..\\n..#...##..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"O\"): \n",
    "        print(\"..######..\\n..#....#..\\n..#....#..\", end = \" \") \n",
    "        print(\"\\n..#....#..\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"P\"): \n",
    "        print(\"..######..\\n..#....#..\\n..######..\", end = \" \") \n",
    "        print(\"\\n..#.......\\n..#.......\\n\\n\") \n",
    "          \n",
    "    elif (c == \"Q\"): \n",
    "        print(\"..######..\\n..#....#..\\n..#.#..#..\", end = \" \") \n",
    "        print(\"\\n..#..#.#..\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"R\"): \n",
    "        print(\"..######..\\n..#....#..\\n..#.##...\", end = \" \") \n",
    "        print(\"\\n..#...#...\\n..#....#..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"S\"): \n",
    "        print(\"..######..\\n..#.......\\n..######..\", end = \" \") \n",
    "        print(\"\\n.......#..\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"T\"): \n",
    "        print(\"..######..\\n....##....\\n....##....\", end = \" \") \n",
    "        print(\"\\n....##....\\n....##....\\n\\n\") \n",
    "          \n",
    "    elif (c == \"U\"): \n",
    "        print(\"..#....#..\\n..#....#..\\n..#....#..\", end = \" \") \n",
    "        print(\"\\n..#....#..\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"V\"): \n",
    "        print(\"..#....#..\\n..#....#..\\n..#....#..\", end = \" \") \n",
    "        print(\"\\n...#..#...\\n....##....\\n\\n\") \n",
    "          \n",
    "    elif (c == \"W\"): \n",
    "        print(\"..#....#..\\n..#....#..\\n..#.##.#..\", end = \" \") \n",
    "        print(\"\\n..##..##..\\n..#....#..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"X\"): \n",
    "        print(\"..#....#..\\n...#..#...\\n....##....\", end = \" \") \n",
    "        print(\"\\n...#..#...\\n..#....#..\\n\\n\") \n",
    "          \n",
    "    elif (c == \"Y\"): \n",
    "        print(\"..#....#..\\n...#..#...\\n....##....\", end = \" \") \n",
    "        print(\"\\n....##....\\n....##....\\n\\n\") \n",
    "          \n",
    "    elif (c == \"Z\"): \n",
    "        print(\"..######..\\n......#...\\n.....#....\", end = \" \") \n",
    "        print(\"\\n....#.....\\n..######..\\n\\n\") \n",
    "          \n",
    "    elif (c == \" \"): \n",
    "        print(\"..........\\n..........\\n..........\", end = \" \") \n",
    "        print(\"\\n..........\\n\\n\") \n",
    "          \n",
    "    elif (c == \".\"): \n",
    "        print(\"----..----\\n\\n\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.10.4 ('python310')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "a888cd810c90be07c3c921372a6d7ff433f5a38d5779dfb2a871d99db75673fb"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
